﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SistemaGO_Desktop.Visao.Telas.Relatorios;

namespace SistemaGO_Desktop.Visao.Telas
{
    public partial class frmRelatorioTerceiros : Form
    {
        private static frmRelatorioTerceiros instancia = null;
        relatorioTerceiros rt = new relatorioTerceiros();

        private frmRelatorioTerceiros()
        {
            InitializeComponent();
        }

        public static frmRelatorioTerceiros getInstance() {
            if (instancia == null) {
                instancia = new frmRelatorioTerceiros();
            } else {
                instancia.Focus();
            }
            return instancia;
        }

        private void frmRelatorioTerceiros_FormClosing(object sender, FormClosingEventArgs e)
        {
            instancia = null;
        }

        private void limparTela()
        {            
            cbRelatorioTerceiro.Text = "Selecione";
            label2.Visible = false;
            mtbRelatorioCnpjTerceiros.Text = "";
            mtbRelatorioCnpjTerceiros.Enabled = false;
            mtbRelatorioCnpjTerceiros.Visible = false;
            tbRelatorioTerceiro.Text = "";
            tbRelatorioTerceiro.Enabled = false;
            tbRelatorioTerceiro.Visible = false;
        }

        private void btRelatorioFiltrarTerceiro_Click(object sender, EventArgs e) {
            try
            {
                string cbTerceiro = cbRelatorioTerceiro.Text;
                rt.SetDataSource(sistemaGODataSet2);
                if (!cbTerceiro.Trim().Equals("Selecione"))
                {
                    if (cbTerceiro.Trim().Equals("Código"))
                    {
                        int codigo = int.Parse(tbRelatorioTerceiro.Text);
                        tbterceirosBindingSource.Filter = "terc_cod = " + codigo + "";
                        if (tbRelatorioTerceiro.Text != null) {
                            rt.RecordSelectionFormula = "{tb_terceiros.terc_cod}=" + tbRelatorioTerceiro.Text + "";
                        }
                    }
                    if (cbTerceiro.Trim().Equals("CNPJ"))
                    {
                        string cnpj = mtbRelatorioCnpjTerceiros.Text;
                        tbterceirosBindingSource.Filter = "terc_cnpj like '%" + cnpj + "%'";
                        rt.RecordSelectionFormula = "{tb_terceiros.terc_cnpj}='" + mtbRelatorioCnpjTerceiros.Text + "'";
                    }
                }
                else
                {
                    tbterceirosBindingSource.RemoveFilter();
                    rt.RecordSelectionFormula = null;
                }

                this.tb_terceirosTableAdapter.Fill(this.sistemaGODataSet2.tb_terceiros);                
                crystalReportViewer1.ReportSource = rt;                
                this.btRelatorioTerceiroExportar.Enabled = true;
            }
            catch 
            {
                MessageBox.Show("Terceiro(s) não encontrado(s)", "Falha na Busca", MessageBoxButtons.OK, MessageBoxIcon.Information);
                limparTela();
                cbRelatorioTerceiro.Focus();
            }
        }

        private void btRelatorioTerceiroExportar_Click(object sender, EventArgs e) {
            crystalReportViewer1.ExportReport();
        }        

        private void frmRelatorioTerceiros_Load(object sender, EventArgs e)
        {
           
        }

        private void cbRelatorioTerceiro_Leave(object sender, EventArgs e)
        {
            if (cbRelatorioTerceiro.Text.Equals(""))
            {
                cbRelatorioTerceiro.Text = "Selecione";
                label2.Visible = false;
                mtbRelatorioCnpjTerceiros.Enabled = false;
                mtbRelatorioCnpjTerceiros.Visible = false;
                tbRelatorioTerceiro.Enabled = false;
                tbRelatorioTerceiro.Visible = false;
            }
        }

        private void cbRelatorioTerceiro_SelectedValueChanged(object sender, EventArgs e)
        {
            if (cbRelatorioTerceiro.Text.Equals("Código"))
            {
                label2.Text = "Código";
                label2.Visible = true;
                mtbRelatorioCnpjTerceiros.Enabled = false;
                mtbRelatorioCnpjTerceiros.Visible = false;
                tbRelatorioTerceiro.Enabled = true;
                tbRelatorioTerceiro.Visible = true;
            }
            if (cbRelatorioTerceiro.Text.Equals("CNPJ"))
            {
                label2.Text = "CNPJ";
                label2.Visible = true;
                mtbRelatorioCnpjTerceiros.Enabled = true;
                mtbRelatorioCnpjTerceiros.Visible = true;
                tbRelatorioTerceiro.Enabled = false;
                tbRelatorioTerceiro.Visible = false;
            }
        }
    }
}
